package tests.base;

import base.Pessoa;
import java.awt.image.BufferedImage;
import java.sql.Date;

import org.junit.*;

public class PessoaTest {

	private Pessoa p;
	private Pessoa p2;
	
	@Before
	public void init() {
		p = new Pessoa(1);
	}
	
	@After
	public void deinit() {
		p = null;
	}
	
	@Test
	public void Foto() {
		p.setFoto(new BufferedImage(1, 1, BufferedImage.TYPE_INT_RGB));
		Assert.assertNotNull(p.getFoto());
	}

	@Test
	public void CPF() {
		p.setCpf("cpf");
		Assert.assertNotNull(p.getCpf());
		Assert.assertEquals(p.getCpf(), "cpf");
	}
	
	@Test
	public void Nome() {
		p.setNome("nome");
		Assert.assertNotNull(p.getNome());
		Assert.assertEquals(p.getNome(), "nome");
	}
	
	@Test
	public void Sexo() {
		p.setSexo('i');
		Assert.assertNotNull(p.getSexo());
		Assert.assertEquals(p.getSexo(), 'i');
	}
	
	@Test
	public void DataNascimento() {
		p.setDataNascimento(new Date(1));
		Assert.assertNotNull(p.getDataNascimento());
		Assert.assertEquals(p.getDataNascimento(), new Date(1));
	}
	
	@Test
	public void Senha() {
		p.setSenha("senha");
		Assert.assertNotNull(p.getSenha());
		Assert.assertEquals(p.getSenha(), "senha");
	}

	@Test
	public void Equals() {
		p.setCpf("000.000.000-00");
		p2 = new Pessoa(2);
		p2.setCpf("000.000.000-00");
		Assert.assertEquals(p, p2);
	}

	@Test
	public void ToString() {
		p.setNome("nome");
		Assert.assertEquals(p.toString(), "nome");
	}

	@Test
	public void CompareTo() {
		p2 = new Pessoa(2);
		p.setNome("a");
		p2.setNome("b");
		Assert.assertEquals(p.compareTo(p2), -1);

		p.setNome("c");
		Assert.assertEquals(p.compareTo(p2), 1);

		p2.setNome("c");
		Assert.assertEquals(p.compareTo(p2), 0);
	}
}